From a5e6692f6dcab2157dc92b509f61418c06b2ebd7 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Wed, 21 Sep 2022 13:50:18 +0200 Subject: fix(projects): load content dynamically and refresh table of contents The previous way of handling content import was causing issue. So I use dynamic import instead. However, the table of contents was not displayed because the wrapper is first empty. I added a mutation observer to refresh the table of contents when the body is updated. --- src/pages/projets/[slug].tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/pages/projets/[slug].tsx') diff --git a/src/pages/projets/[slug].tsx b/src/pages/projets/[slug].tsx index b396fc3..7539b55 100644 --- a/src/pages/projets/[slug].tsx +++ b/src/pages/projets/[slug].tsx @@ -33,6 +33,7 @@ import useGithubApi, { type RepoData } from '@utils/hooks/use-github-api'; import useSettings from '@utils/hooks/use-settings'; import { MDXComponents, NestedMDXComponents } from 'mdx/types'; import { GetStaticPaths, GetStaticProps } from 'next'; +import dynamic from 'next/dynamic'; import Head from 'next/head'; import { useRouter } from 'next/router'; import Script from 'next/script'; @@ -56,8 +57,12 @@ const ProjectPage: NextPageWithLayout = ({ project }) => { url: `/projets/${id}`, }); - const ProjectContent: ComponentType = - require(`../../content/projects/${id}.mdx`).default; + const ProjectContent: ComponentType = dynamic( + () => import(`../../content/projects/${id}.mdx`), + { + loading: () => , + } + ); const components: NestedMDXComponents = { Code: (props) => , -- cgit v1.2.3